// 引入axios依赖
import axios from 'axios'
// 引入element-ui依赖
import Element from 'element-ui'
// 引入路由
import router from './router'
// 引入存储
// import store from './store'

// 自定义全局请求头(后台)
axios.defaults.baseURL = 'http://localhost:8083'

// 自定义前置拦截
axios.interceptors.request.use(config => {
  return config
})

// 自定义后置拦截
axios.interceptors.response.use(response => {
  const contentType = response.headers['content-type']
  if (contentType === 'application/octet-stream') {
    // console.log('contentType is application/octet-stream')
    return response
  }
  const result = response.data

  // console.log('-------------------------')
  // console.log('result.code:' + result.code)
  // console.log('result.message:' + result.message)
  // console.log('-------------------------')

  if (result && result.code === 200) {
    if (result.message === '操作成功') {
      return response
    }
    Element.Message.success(result.message)
    return response // 放行
  } else {
    Element.Message.error(result.message)
    return Promise.reject(result.message)// 抛出异常, 阻止进入"$axios.post(.."
  }
},
// 捕获并处理后台异常信息
error => {
  // 使得异常信息更加友好
  if (error.response.data) { // data不为空时
    error.message = error.response.data.message
    console.log('-------------------------')
    console.log('error.message: ' + error.message)
    console.log('-------------------------')
  }

  if (error.response.status === 401) { // Shiro认证错误
    // store.commit('REMOVE_INFO') // 清除用户信息:token及userInfo
    router.push('/login') // 跳转到登录页面
  }
  Element.Message.error(error.message)
  return Promise.reject(error)// 抛出异常, 阻止进入"$axios.post(.."
}
)
